package com.coderjacky.product.service;

import java.util.List;
import java.util.concurrent.ExecutionException;

import com.coderjacky.product.domain.PmsSkuInfo;
import com.coderjacky.product.vo.ItemInfoVo;

/**
 * sku信息Service接口
 *
 * @author ccy
 * @date 2024-01-16
 */
public interface IPmsSkuInfoService
{
    /**
     * 查询sku信息
     *
     * @param skuId sku信息主键
     * @return sku信息
     */
    public PmsSkuInfo selectPmsSkuInfoBySkuId(Long skuId);

    /**
     * 查询sku信息列表
     *
     * @param pmsSkuInfo sku信息
     * @return sku信息集合
     */
    public List<PmsSkuInfo> selectPmsSkuInfoList(PmsSkuInfo pmsSkuInfo);

    /**
     * 新增sku信息
     *
     * @param pmsSkuInfo sku信息
     * @return 结果
     */
    public int insertPmsSkuInfo(PmsSkuInfo pmsSkuInfo);

    /**
     * 修改sku信息
     *
     * @param pmsSkuInfo sku信息
     * @return 结果
     */
    public int updatePmsSkuInfo(PmsSkuInfo pmsSkuInfo);

    /**
     * 批量删除sku信息
     *
     * @param skuIds 需要删除的sku信息主键集合
     * @return 结果
     */
    public int deletePmsSkuInfoBySkuIds(Long[] skuIds);

    /**
     * 删除sku信息信息
     *
     * @param skuId sku信息主键
     * @return 结果
     */
    public int deletePmsSkuInfoBySkuId(Long skuId);


    /**
     * 1.查sku详情   0.5s
     *
     * 2.查sku图片信息 1s
     *
     * 3.查spu相关信息销售属性 1s
     *
     * 4.查spu商品介绍 1s
     *
     * 5.查规格和包装 05s
     * @param skuId
     */
    public ItemInfoVo selectSkuItemInfoBySkuId(Long skuId) throws ExecutionException, InterruptedException;
}
